home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 151-175 / scopedisk168 / asmmacros / am_02 / open.i < prev    next >
Text File  |  1995-03-19  |  2KB  |  79 lines

  1.      NOLIST
  2. Open        MACRO              ; 19 Dec 88
  3. *------------------------------; Start of Open macro.
  4.      NOLIST
  5.      IFEQ NARG-4               ; If new, read, or r/w is specified, make D2
  6.                                ;  indicate the accessMode accordingly.
  7.      IFC '\4','new'
  8.      LIST
  9.      MOVE.L #1006,D2           ; Make D2 indicate "new" access mode.
  10.      NOLIST
  11.      ENDC
  12.      IFC '\4','read'
  13.      LIST
  14.      MOVE.L #1005,D2           ; Make D2 indicate "read" access mode.
  15.      NOLIST
  16.      ENDC
  17.      IFC '\4','r/w'
  18.      LIST
  19.      MOVE.L #1004,D2           ; Make D2 indicate "r/w" access mode.
  20.      NOLIST
  21.      ENDC
  22.      ENDC
  23.      IFEQ NARG-3               ; If new, read, or r/w is not specified,
  24.      LIST
  25.      MOVE.L #1005,D2           ; Make D2 indicate the old/new accessMode
  26.      TST D0                    ;  based on D0.
  27.      BNE 5$
  28.      SUBQ #1,D2
  29. 5$:
  30.      NOLIST
  31.      ENDC
  32.      IFC '\1','I'              ; If <PointerToFileName> is specified, then
  33.      LIST
  34.                                ; Put <PointerToFileName> in D1.
  35.      MOVE.L #\2,D1
  36.      NOLIST
  37.      IFEQ ReEntrant-1
  38.      LIST
  39.      ADD.L A5,D1
  40.      NOLIST
  41.      ENDC
  42.      ENDC
  43.      IFC '\1','D'              ; If <FileName> is specified, then
  44.      LIST
  45.                                ; Make D1 point to the file name string.
  46.      MOVE.L #\2.str,D1
  47.      NOLIST
  48.      IFND \2.str               ; Unless it was previously defined,
  49.      LIST
  50.      SECTION DataSection,DATA  ; The ASCII <FileName> string goes here.
  51. \2.str:
  52.      DC.B '\2',0
  53.      CNOP 0,2
  54.      SECTION CodeSection,CODE
  55.      NOLIST
  56.      ENDC
  57.      ENDC
  58.      LIST
  59.      CallLib Open,dos          ; Call Open to open <FileName>.
  60.                                ; Put the file handle at <FileHandleName>.
  61.      NOLIST
  62.      IFEQ ReEntrant-1
  63.      LIST
  64.      DefDS \3,1
  65.      MOVE.L D0,\3(A5)
  66.      NOLIST
  67.      ENDC
  68.      IFNE ReEntrant-1
  69.      LIST
  70.      DS_BSS \3,1,.L
  71.      MOVE.L D0,\3
  72.      NOLIST
  73.      ENDC
  74.      LIST
  75.      TST.L D0                  ; Make the zero flag indicate failure.
  76. *------------------------------; End of Open macro.
  77.      ENDM
  78.      LIST
  79.